package err_exception

import (
	"fmt"
	"strconv"
)

func LearnErr() {
	//错误，就是可以预见到的可能出现问题的情况，这些情况，会导致你的代码出现问题，参数检查，数据库访问不了等

	data := 12

	strconv.Itoa(data) //go认为这个Itoa函数不可能出错，没有必要返回error,

	_, err := strconv.Atoi("12") //Atoi这个函数，认为我的函数内部会出现一些预知错误情况

	if err != nil {
		//错误
	}
}

func div(a, b int) (int, error) {
	if b == 0 {
		panic("被除数不能为0")
	}
	return a / b, nil
}

func LearnException() {
	//异常，就是不可预知的错误
	defer func() {
		err := recover()
		if err != nil {
			fmt.Println("异常被捕获")
		}
		fmt.Println("test")
	}()

	_, err := div(1, 0)
	if err != nil {
		fmt.Println(err)
	}

}
